// RAP [rh] AboutDialog left out for now
///*******************************************************************************
// * Copyright (c) 2004, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.internal.about;
//
//import java.io.IOException;
//import java.net.URL;
//import com.ibm.icu.text.Collator;
//import java.util.Arrays;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.List;
//import java.util.Locale;
//
//import org.eclipse.jface.resource.ImageDescriptor;
//
///**
// * An abstract parent that describes data that can be displayed in a table in one of
// * the about dialogs.
// * @since 3.0
// */
//public abstract class AboutData {
// private String providerName;
//
// private String name;
//
// private String version;
//
// private String id;
//
// private String versionedId = null;
//
// protected AboutData(String providerName, String name, String version,
// String id) {
// this.providerName = providerName == null ? "" : providerName; //$NON-NLS-1$
// this.name = name == null ? "" : name; //$NON-NLS-1$
// this.version = version == null ? "" : version; //$NON-NLS-1$
// this.id = id == null ? "" : id; //$NON-NLS-1$
// }
//
// public String getId() {
// return id;
// }
//
// public String getName() {
// return name;
// }
//
// public String getProviderName() {
// return providerName;
// }
//
// public String getVersion() {
// return version;
// }
//
// public String getVersionedId() {
// if (versionedId == null) {
// versionedId = getId() + "_" + getVersion(); //$NON-NLS-1$
// }
// return versionedId;
// }
//
// /**
// * Modify the argument array to reverse the sort order.
// * @param infos
// */
// private static void reverse(AboutData[] infos) {
// List infoList = Arrays.asList(infos);
// Collections.reverse(infoList);
// for (int i = 0; i < infos.length; ++i) {
// infos[i] = (AboutData) infoList.get(i);
// }
// }
//
// /**
// * Modify the argument array to be sorted by provider. If the reverse
// * boolean is true, the array is assumed to already be sorted and the
// * direction of sort (ascending vs. descending) is reversed. Entries
// * with the same name are sorted by name.
// *
// * @param reverse
// * if true then the order of the argument is reversed without
// * examining the value of the fields
// * @param infos
// * the data to be sorted
// */
// public static void sortByProvider(boolean reverse, AboutData[] infos) {
// if (reverse) {
// reverse(infos);
// return;
// }
//
// Arrays.sort(infos, new Comparator() {
// Collator collator = Collator.getInstance(Locale.getDefault());
//
// public int compare(Object a, Object b) {
// AboutData info1 = (AboutData) a;
// AboutData info2 = (AboutData) b;
//
// String provider1 = info1.getProviderName();
// String provider2 = info2.getProviderName();
//
// if (!provider1.equals(provider2)) {
// return collator.compare(provider1, provider2);
// }
//
// return collator.compare(info1.getName(), info2.getName());
// }
// });
// }
//
// /**
// * Modify the argument array to be sorted by name. If the reverse
// * boolean is true, the array is assumed to already be sorted and the
// * direction of sort (ascending vs. descending) is reversed.
// *
// * @param reverse
// * if true then the order of the argument is reversed without
// * examining the value of the fields
// * @param infos
// * the data to be sorted
// */
// public static void sortByName(boolean reverse, AboutData[] infos) {
// if (reverse) {
// reverse(infos);
// return;
// }
//
// Arrays.sort(infos, new Comparator() {
// Collator collator = Collator.getInstance(Locale.getDefault());
//
// public int compare(Object a, Object b) {
// AboutData info1 = (AboutData) a;
// AboutData info2 = (AboutData) b;
// return collator.compare(info1.getName(), info2.getName());
// }
// });
// }
//
// /**
// * Modify the argument array to be sorted by version. If the reverse
// * boolean is true, the array is assumed to already be sorted and the
// * direction of sort (ascending vs. descending) is reversed. Entries
// * with the same name are sorted by name.
// *
// * @param reverse
// * if true then the order of the argument is reversed without
// * examining the value of the fields
// * @param infos
// * the data to be sorted
// */
// public static void sortByVersion(boolean reverse, AboutData[] infos) {
// if (reverse) {
// reverse(infos);
// return;
// }
//
// Arrays.sort(infos, new Comparator() {
// Collator collator = Collator.getInstance(Locale.getDefault());
//
// public int compare(Object a, Object b) {
// AboutData info1 = (AboutData) a;
// AboutData info2 = (AboutData) b;
//
// String version1 = info1.getVersion();
// String version2 = info2.getVersion();
//
// if (!version1.equals(version2)) {
// return collator.compare(version1, version2);
// }
//
// return collator.compare(info1.getName(), info2.getName());
// }
// });
// }
//
// /**
// * Modify the argument array to be sorted by id. If the reverse
// * boolean is true, the array is assumed to already be sorted and the
// * direction of sort (ascending vs. descending) is reversed. Entries
// * with the same name are sorted by name.
// *
// * @param reverse
// * if true then the order of the argument is reversed without
// * examining the value of the fields
// * @param infos
// * the data to be sorted
// */
// public static void sortById(boolean reverse, AboutData[] infos) {
// if (reverse) {
// reverse(infos);
// return;
// }
//
// Arrays.sort(infos, new Comparator() {
// Collator collator = Collator.getInstance(Locale.getDefault());
//
// public int compare(Object a, Object b) {
// AboutData info1 = (AboutData) a;
// AboutData info2 = (AboutData) b;
//
// String id1 = info1.getId();
// String id2 = info2.getId();
//
// if (!id1.equals(id2)) {
// return collator.compare(id1, id2);
// }
//
// return collator.compare(info1.getName(), info2.getName());
// }
// });
// }
//
// protected static URL getURL(String value) {
// try {
// if (value != null) {
// return new URL(value);
// }
// } catch (IOException e) {
// // do nothing
// }
//
// return null;
// }
//
// protected static ImageDescriptor getImage(URL url) {
// return url == null ? null : ImageDescriptor.createFromURL(url);
// }
//
// protected static ImageDescriptor getImage(String value) {
// return getImage(getURL(value));
// }
//}